interface Person {
  name: string;
  age: number;
  sex?: number;
  address: string;
}

// P1 是一个对象类型，内部包含name和age属性
type P1 = Pick<Person, "name" | "age">; // 从Person中挑选一部分属性组成新类型

type P2 = Omit<Person, "name" | "age">; // 从Person中排除一部分属性，剩下属性组成新类型

type P3 = Partial<Person>; // 将Person上所有属性变成可选属性

type P4 = Required<Person>; // 将Person上所有属性变成必选属性
